#define _CRT_SECURE_NO_WARNINGS 1

#include<iostream>
#include<vector>
#include<string>

using namespace std;

// 3.
const int N = 1e6 + 10;
string mask, str;
int  ret;
bool st[N];
int n;
void Del(int r)
{
	int l = r + 1;
	if (l > n)return;

	while (l <= n && r >= 1)
	{
		if (str[r] == mask[1] && str[l] == mask[2])
		{
			st[r] = true, st[l] = true;
			ret++;
		}
		else
		{
			return;
		}
		r--;
		l++;
	}


}
void Del2(int r, int l)
{
	if (l > n || r < 1)return;

	while (l <= n && r >= 1)
	{
		if (str[r] == mask[1] && str[l] == mask[2])
		{
			st[r] = true, st[l] = true;
			ret++;
		}
		else
		{
			return;
		}
		r--;
		l++;
	}


}


int main()
{
	getline(cin, mask);

	getline(cin, str);

	mask = " " + mask;
	str = " " + str;

	n = str.size() - 1;
	while (n--)
	{
		for (int i = 1; i <= n; ++i)
		{
			if (!st[i] && str[i] == mask[1])
				Del(i);
		}
	}



	cout << ret << ' ';
	for (int i = 1; i <= str.size() - 1; ++i)
	{
		if (!st[i])cout << str[i];
	}cout << endl;



	return 0;
}

//int main()
//{
//	getline(cin, mask);
//
//	getline(cin, str);
//
//	mask = " " + mask;
//	str = " " + str;
//
//	int fast = 1, slow = 1 ;
//	n = str.size() - 1;
//	while (fast < str.size())
//	{
//		if (!st[fast] && str[fast] == mask[1])
//		{
//			Del(fast);
//		}
//		else if (!st[fast] && str[fast] == mask[2])
//		{
//			Del2(slow,fast);
//		}
//		while (slow >= 1 && st[slow])slow--;
//		if (!st[slow] && str[slow] != mask[1])slow = fast;
//		if (!st[fast] && str[fast] != mask[1])slow = fast;
//
//		fast++;
//	}
//
//
//
//	cout << ret << ' ';
//	for (int i = 1; i <= str.size() - 1; ++i)
//	{
//		if (!st[i])cout << str[i];
//	}cout << endl;
//
//	//for (int i = 1; i <= str.size() - 1; ++i)
//	//{
//	//	cout << st[i] << ' ';
//	//}cout << endl;
//
//	//cout << mask << endl;
//
//	//cout << str << endl;
//
//
//	return 0;
//}


// 1
// 
// 
//const int N = 1e4 + 10, M = 1e3 + 10;
//int a1, a2, b1, b2, b3;
//int n, m;
//int maxn;
//
//struct node
//{
//	int count;
//	bool affected;
//};
//
//vector<node> vop[M];
//
//
//int mine, enemy;
//
//int main()
//{
//	cin >> n >> m;
//	cin >> a1 >> a2 >> b1 >> b2 >> b3;
//
//	for (int i = 1; i < M; ++i)
//		vop[i].resize(5);
//
//
//	for (int i = 1; i <= n; ++i)
//	{
//		int day, op;
//		cin >> day >> op;
//		vop[day][op].count++;
//		maxn = max(day, maxn);
//	}
//
//	for (int i = 1; i <= m; ++i)
//	{
//		int day, op;
//		cin >> day >> op;
//		vop[day][op].affected = true;
//	}
//
//	for (int i = 1; i <= maxn; ++i)
//	{
//		for (int k = 1; k <= 3; ++k)
//		{
//			auto t = vop[i][k];
//			if (k == 1)
//			{
//				if (t.affected)
//				{
//					mine += a1 * t.count;
//					enemy -= b1 * t.count / 2;
//				}
//				else
//				{
//					mine += a1 * t.count;
//					enemy -= b1 * t.count;
//				}
//			}
//			else if (k == 2)
//			{
//
//				if (t.affected)
//				{
//					enemy -= b2 * t.count / 2;
//				}
//				else
//				{
//					enemy -= b2 * t.count;
//				}
//			}
//			else
//			{
//				if (t.affected)
//				{
//					mine -= a2 * t.count;
//					enemy -= b3 * t.count / 2;
//				}
//				else
//				{
//					mine -= a2 * t.count;
//					enemy -= b3 * t.count;
//				}
//			}
//		}
//	}
//
//	cout << mine << ' ' << enemy << endl;
//
//	return 0;
//}